#pragma once

#ifndef TILESET_H
#define TILESET_H

#include <map>
#include <string>
#include <d3d9.h>
#include <d3dx9.h>
#pragma comment(lib, "d3d9.lib")
#pragma comment(lib, "d3dx9.lib")
#include "Tile.h"

class TileSet
{
private:
	int tileWidth;
	int tileHeight;
	std::map<char, Tile> tiles;
public:
	int getTileWidth() const { return tileWidth; }
	void setTileWidth(int newWidth) { tileWidth = newWidth; }
	int getTileHeight() const { return tileHeight; }
	void setTileHeight(int newHeight) { tileHeight = newHeight; }
	TileSet(int tileWidth, int tileHeight);
	TileSet(std::string names, IDirect3DTexture9* texture, int tileWidth, int tileHeight);
	virtual ~TileSet() { tiles.clear(); }
	void addTile(char name, Tile tile);
	void removeTile(char name);
	Tile getTile(char name) const;
};

#endif